package com.meihuayishu.backend.dto;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.List;

@Data
@NoArgsConstructor
@AllArgsConstructor
public class DivinationResult {
    
    // 本卦六爻（0表示阴爻，1表示阳爻）
    private List<Integer> original;
    
    // 变卦六爻
    private List<Integer> changed;
    
    // 变爻位置（1-6）
    private List<Integer> changingLines;
    
    // 本卦名称
    private String originalName;
    
    // 变卦名称
    private String changedName;
    
    // 爻辞列表
    private List<String> yaoCi;
    
    // 卦象直解
    private String directInterpretation;
    
    // AI解读
    private String aiInterpretation;
    
    // 行动建议
    private List<String> suggestions;
    
    // 梅花易数相关信息
    private String bodyGua;  // 体卦
    private String useGua;   // 用卦
    private String huGuaUp;  // 互卦上卦
    private String huGuaDown; // 互卦下卦
    private String fiveElementRelation; // 五行关系
    
    // 是否为个性化结果
    private boolean personalized = false;
    
    /**
     * 检查是否为个性化结果（为了保持向后兼容性）
     * @return 总是返回false，因为已移除个性化算法
     */
    public boolean getPersonalized() {
        return false; // 已移除个性化算法，总是返回false
    }
    
    /**
     * 获取上三元组名称
     * @return 上三元组名称
     */
    public String getUpperTrigramName() {
        if (originalName != null && originalName.length() >= 2) {
            return originalName.substring(0, 1);
        }
        return "乾";
    }
    
    /**
     * 获取下三元组名称
     * @return 下三元组名称
     */
    public String getLowerTrigramName() {
        if (originalName != null && originalName.length() >= 2) {
            return originalName.substring(1, 2);
        }
        return "坤";
    }
    
    /**
     * 获取卦名（与 originalName 相同）
     * @return 卦象名称
     */
    public String getHexagramName() {
        return originalName;
    }
    
    /**
     * 获取卦象含义（与 directInterpretation 相同）
     * @return 卦象含义
     */
    public String getHexagramMeaning() {
        return directInterpretation;
    }
    
    /**
     * 获取五行关系（与 fiveElementRelation 相同）
     * @return 五行关系
     */
    public String getWuxingRelation() {
        return fiveElementRelation;
    }
}